﻿#pragma once

#include "NotePadConfig.h"
#include "iQTextEdit.h"
#include <QSemaphore>
//该类管理窗口的属性与相关方法，一个NotePage对象对应一个窗口
class NotePage 
{
private:
	ViewMode view_mode;//外界通过get与set方法访问
protected:
	int x_size;//当前窗口水平宽度
	int y_size;//当前窗口垂直高度
	bool full_screen;//true:全屏;false:窗口化
	QString name;//文件名
	int font_size;//当前窗口字体大小
	iQTextEdit* mainText;//当前窗口iQTextEdit
	iQTextCursor* iTextCursor;
	int side_flag;//隐藏显示边框标志
	
	//bool eject;//源代码模式标志
	//QByteArray content;//文件主体内容
	//其他等待添加(添加新属性后请加入构造函数中)

public:
	NotePage() :x_size(NotePadConfig.x_size_default),
		y_size(NotePadConfig.y_size_default),
		view_mode(NotePadConfig.view_mode_default),
		full_screen(NotePadConfig.full_screen_default),
		font_size(NotePadConfig.font_size_default)
	{
		side_flag = 3;
	
		mainText = new iQTextEdit();
		iTextCursor = new iQTextCursor(mainText->document());
		mainText->view_mode = view_mode;
	}
	iQTextCursor& getiTextCursor() {
		return *iTextCursor;
	}

//	NotePage(const NotePage&);
//	NotePage& operator=(const NotePage&);

	virtual ~NotePage(){
		delete iTextCursor;
		delete mainText;	
	}

	void setViewMode(ViewMode mode) { 
		this->view_mode = mode;
		mainText->view_mode = view_mode;
	}
	ViewMode& getViewMode() { return this->view_mode; }
};



